package com.aiwei.tdjk.service;

import com.aiwei.tdjk.entity.Job;

import java.util.List;
import java.util.Set;

/**
 * Created by yanfeng on 2016/12/13.
 */
public interface JobService {

    Set<Long> findAncestorIds(Iterable<Long> currentIds);

    Set<Long> findAncestorIds(Long currentId);

    /**
     * 过滤仅获取可显示的数据
     *
     * @param jobIds
     * @param organizationJobIds
     */
    void filterForCanShow(Set<Long> jobIds, Set<Long[]> organizationJobIds);


    /**
     * 查询all组织机构
     * @return
     */
    List<Job> findAllWithSort(boolean isShow);

    /**
     * 根据名称模糊查询组织机构
     * @param name
     * @return
     */
    List<Job> findAllByName(String name);


    /**
     * 新增子节点
     * @param parentId
     * @param child
     */
    void appendChild(long parentId,Job child);

    /**
     * 删除节点
     * @param id
     */
    void delete(long id);


    void deleteSelfAndChild(long id,String makeSelfAsNewParentIds);

    /**
     * 根据主键id获取元素
     * @param id
     * @return
     */
    Job get(long id);

    /**
     * 更新节点
     * @param job
     */
    void update(Job job);
    /**
     * 修改子节点状态
     * @param parentIds
     * @return
     */
    void updateChildIsShow(boolean isShow,String parentIds);
    /**
     * 根据用户的id查询该用户是否有该工作职务
     * @param jobName 工作名字
     * @param userId 登录用户的id
     * @return
     */
    boolean findJobCountByUserId(String jobName,Long userId);
}
